1. Field of the Invention
The present invention relates to a microprogram controlled data processing system. More particularly, it relates to a system for facilitating an interrupt in the course of the execution of a macro instruction in a microprogram controlled data processing system having a microsubroutine facility.
2. Description of the Prior Art
In recent years as the application of firmware proceeds, a large capacity microprogram for executing a high performance macro instruction is available. In order to reduce the storage capacity of a control storage for storing the macro program, it is a common practice to use a common microprogram or microsubroutines.
On the other hand, in one application of the data processing system, it is a common practice to control the execution of a plurality of application programs by one control program to achieve an overall function. In this manner, the utilization efficiency of the data processing system is improved. In such a configuration, the control program is controlled in accordance with an interrupt which takes place internally or externally of the data processing system such that a particular application program is selected in accordance with an application program selection criterion previously imparted to the control program, and if the interrupted application program is different from the selected application program, the execution status of the interrupted application program is saved in a save area allotted to the program and the execution status of the selected application program is retrieved from a save area allotted to the program to shift the control of the selected application program. This feature is hereinafter called an operational feature which permits simultaneous execution of a plurality of application programs in a time interleaved mode.
In a data processing system having both the microsubroutine facility and the simultaneous execution facility of a plurality of application programs in the time interleaved mode, the acceptance of the interrupt request at a boundary of the macro instructions and the resumption from the interrupt are permitted.
However, in the prior art system, it is not possible to accept the interrupt request in the course of the execution of the microprogram. This facility is needed when a microprogram having a long execution time, such as an array operation instruction class microprogram, character string instruction class microprogram, or bit string instruction class microprogram is used. It is expected that the use of microprograms which need a long execution time and a large storage area, such as the bit string instruction microprogram, will increase in the future. This indicates that some consideration must be made to the microsubroutine facility in designing the interrupt acceptance facility. It is not desirable to accept the interrupt request only by the highest order main microprogram. In other words, it is desirable to accept the interrupt request at any point in the microsubroutine.